Skip to content

bug: Don't block for PodIP population#4535

Open
markmandel wants to merge 1 commit intoagones-dev:mainfrom
markmandel:bug/podip
Open

bug: Don't block for PodIP population#4535
markmandel wants to merge 1 commit intoagones-dev:mainfrom
markmandel:bug/podip

Conversation

@markmandel
Copy link
Copy Markdown
Member

What type of PR is this?

Uncomment only one /kind <> line, press enter to put that in a new line, and remove leading whitespace from that line:

/kind breaking

/kind bug

/kind cleanup
/kind documentation
/kind feature
/kind hotfix
/kind release

What this PR does / Why we need it:

This finally fixes a bug we introduced in #3764 where a GameServer blocks its state at Starting until the PodIP is populated - which slowed down scaling and a bunch of other things for something that not everyone needed.

This is no longer the case -- PodIP will be populated on the GameServer as it becomes populated on the Pod and is no longer blocking.

** If you are used to the original behaviour, make sure to factor this
into your existing architecture when upgrading.**

Which issue(s) this PR fixes:

Closes #3960

Special notes for your reviewer:

Details:

  • Add syncGameServerPodIPs to update addresses for Scheduled/Ready/Reserved/Allocated GameServers
  • Enqueue GameServer on PodIP changes in pod update handler
  • Remove blocking PodIPs check in syncGameServerStartingState; apply IPs non-blocking instead
  • Apply PodIPs non-blocking in syncGameServerRequestReadyState
  • Refactor unit tests to be table-based, since there was so much repetition

This _finally_ fixes a bug we introduced in agones-dev#3764 where a GameServer
blocks its state at Starting until the PodIP is populated - which slowed
down scaling and a bunch of other things for something that not everyone
needed.

This is no longer the case -- PodIP will be populated on the GameServer
as it becomes populated on the Pod and is no longer blocking.

** If you are used to the original behaviour, make sure to factor this
 into your existing architecture when upgrading.**

Details:

- Add syncGameServerPodIPs to update addresses for
  Scheduled/Ready/Reserved/Allocated GameServers
- Enqueue GameServer on PodIP changes in pod update handler
- Remove blocking PodIPs check in syncGameServerStartingState; apply IPs
  non-blocking instead
- Apply PodIPs non-blocking in syncGameServerRequestReadyState
- Refactor unit tests to be table-based, since there was so much
  repetition

Closes agones-dev#3960

Signed-off-by: Mark Mandel <mark@compoundtheory.com>
@markmandel markmandel requested a review from a team April 25, 2026 21:25
@markmandel markmandel added the kind/breaking Breaking change label Apr 25, 2026
@markmandel markmandel marked this pull request as ready for review April 25, 2026 21:25
@github-actions github-actions Bot added kind/bug These are bugs. size/XL labels Apr 25, 2026
@github-actions
Copy link
Copy Markdown

This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size.

@agones-bot
Copy link
Copy Markdown
Collaborator

Build Succeeded 🥳

Build Id: 75656263-e0f7-4c5e-a318-efc3336b4883

The following development artifacts have been built, and will exist for the next 30 days:

A preview of the website (the last 30 builds are retained):

To install this version:

git fetch https://github.com/googleforgames/agones.git pull/4535/head:pr_4535 && git checkout pr_4535
helm install agones ./install/helm/agones --namespace agones-system --set agones.image.registry=us-docker.pkg.dev/agones-images/ci --set agones.image.tag=1.58.0-dev-5969b84

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/breaking Breaking change kind/bug These are bugs. size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Game servers are having some delays until getting external IPs from agones SDK

2 participants